/**
 * @file
 * @brief This file is part of Idegen.
 * @detailed Copyright (c) 2010 http://www.idegen.com.
 */

#ifndef IDEGEN_TYPES_HPP
#define IDEGEN_TYPES_HPP

/**
 * @namespace Idegen
 * @brief This is the namespace of Idegen.
 */
namespace Idegen
{
	class IdegenSolution;
	class IdegenProject;
	class IdegenExecutable;
	class IdegenDynamicLibrary;
	class IdegenStaticLibrary;

	/**
	 * @brief A list containing strings.
	 */
	typedef std::vector< std::wstring > StringList;

	/**
	 * @brief A list containing platform definitions.
	 */
	typedef std::vector< std::wstring > PlatformList;

	/**
	 * @brief A list containing configuration type definitions.
	 */
	typedef std::vector< std::wstring > ConfigurationTypeList;

	/**
	 * @brief A list containing solution definitions.
	 */
	typedef std::vector< IdegenSolution* > SolutionList;

	/**
	 * @brief A list containing project definitions.
	 */
	typedef std::vector< IdegenProject* > ProjectList;

	/**
	 * @brief A list containing executable project definitions.
	 */
	typedef std::vector< IdegenExecutable* > ExecutableList;

	/**
	 * @brief A list containing dynamic library project definitions.
	 */
	typedef std::vector< IdegenDynamicLibrary* > DynamicLibraryList;

	/**
	 * @brief A list containing static library project definitions.
	 */
	typedef std::vector< IdegenStaticLibrary* > StaticLibraryList;
}

#endif
